From 2b02ebe2a19874efa75e3329f40ece307f7260dc Mon Sep 17 00:00:00 2001 From: robertl Date: Fri, 21 Jan 2005 21:07:23 +0000 Subject: [PATCH] Add case_strncmp for use by mkshort to fix the "by" capitalization problem. --- gpsbabel/defs.h | 1 + gpsbabel/mkshort.c | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/gpsbabel/defs.h b/gpsbabel/defs.h index e2d9c4916..167d39d4e 100644 --- a/gpsbabel/defs.h +++ b/gpsbabel/defs.h @@ -492,6 +492,7 @@ void xfprintf(const char *errtxt, FILE *stream, const char *format, ...); void xfputs(const char *errtxt, const char *s, FILE *stream); int case_ignore_strcmp(const char *s1, const char *s2); +int case_ignore_strncmp(const char *s1, const char *s2, int n); char *strsub(const char *s, const char *search, const char *replace); char *gstrsub(const char *s, const char *search, const char *replace); diff --git a/gpsbabel/mkshort.c b/gpsbabel/mkshort.c index 5f40e1803..3a9c787fa 100644 --- a/gpsbabel/mkshort.c +++ b/gpsbabel/mkshort.c @@ -149,18 +149,23 @@ mkshort_del_handle(void *h) mkshort_handle *hdr = h; int i; - if (hdr) { - for (i = 0; i < PRIME; i++) { - queue *e, *t; - QUEUE_FOR_EACH(&hdr->namelist[i], e, t) { - uniq_shortname *s = (uniq_shortname *) e; - dequeue(e); - xfree(s->orig_shortname); - xfree(s); + if (!hdr) + return; + + for (i = 0; i < PRIME; i++) { + queue *e, *t; + QUEUE_FOR_EACH(&hdr->namelist[i], e, t) { + uniq_shortname *s = (uniq_shortname *) e; + if (global_opts.verbose_status >= 2 && s->conflictctr) { + fprintf(stderr, "%d Output name conflicts: '%s'\n", + s->conflictctr, s->orig_shortname); } + dequeue(e); + xfree(s->orig_shortname); + xfree(s); } - xfree(hdr); } + xfree(hdr); } /* @@ -280,7 +285,7 @@ mkshort(void *h, const char *istring) nstring = xxstrdup(ostring, file, line); l = strlen (nstring); while (l > 0) { - if (strncmp(&nstring[l], " by ",4) == 0) { + if (case_ignore_strncmp(&nstring[l], " by ",4) == 0) { nstring[l] = 0; break; } -- 2.30.2